/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 
 * 
 *
 * 
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using System;
using System.Collections.Generic;
using System.Text;


namespace JDCloudSDK.Vm.Model
{

    /// <summary>
    ///  实例模板磁盘配置。
    /// </summary>
    public class InstanceTemplateDiskSpec
    {

        ///<summary>
        /// 云硬盘类型。各类型介绍请参见[云硬盘类型](https://docs.jdcloud.com/cn/cloud-disk-service/instance-type)。
        /// 可选值：
        /// &#x60;ssd.gp1&#x60;：通用型SSD
        /// &#x60;ssd.io1&#x60;：性能型SSD
        /// &#x60;hdd.std1&#x60;：容量型HDD
        /// 
        ///</summary>
        public string DiskType{ get; set; }
        ///<summary>
        /// 云硬盘容量，单位为 GiB，步长10GiB。
        /// 取值范围：
        /// 系统盘：&#x60;[40,500]&#x60;GiB，且不能小于镜像系统盘容量
        /// 数据盘：&#x60;[20,16000]&#x60;GiB，如指定&#x60;snapshotId&#x60;创建云硬盘则不能小于快照容量。
        /// 
        ///</summary>
        public int? DiskSizeGB{ get; set; }
        ///<summary>
        /// 创建云硬盘的快照ID。
        ///</summary>
        public string SnapshotId{ get; set; }
        ///<summary>
        /// 云硬盘自动快照策略ID。
        ///</summary>
        public string PolicyId{ get; set; }
        ///<summary>
        /// 云硬盘是否加密。
        /// 可选值：
        /// &#x60;true&#x60;：加密
        /// &#x60;false&#x60;（默认值）：不加密
        /// 
        ///</summary>
        public bool Encrypt{ get; set; }
        ///<summary>
        /// 云硬盘的最大iops。
        ///</summary>
        public int? Iops{ get; set; }
    }
}
